home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 16
/
Aminet 16 (1996)(GTI - Schatztruhe)[!][Dec 1996].iso
/
Aminet
/
comm
/
term
/
term_source.lha
/
Extras
/
Source
/
term-source.lha
/
xproto.h
< prev
next >
Wrap
C/C++ Source or Header
|
1996-10-20
|
6KB
|
148 lines
/** xproto.h
*
* Include file for External Protocol Handling
*
**/
#ifndef _COMPILER_H
#define REG(x) register __ ## x
#define ASM __asm
#endif /* _COMPILER_H */
/*
* Number of defined extensions
*/
#define XPR_EXTENSION 4L
/*
* Flags returned by XProtocolSetup()
*/
#define XPRS_FAILURE 0x00000000L
#define XPRS_SUCCESS 0x00000001L
#define XPRS_NORECREQ 0x00000002L
#define XPRS_NOSNDREQ 0x00000004L
#define XPRS_HOSTMON 0x00000008L
#define XPRS_USERMON 0x00000010L
#define XPRS_HOSTNOWAIT 0x00000020L
/*
* The update structure
*/
struct XPR_UPDATE { ULONG xpru_updatemask;
STRPTR xpru_protocol;
STRPTR xpru_filename;
LONG xpru_filesize;
STRPTR xpru_msg;
STRPTR xpru_errormsg;
LONG xpru_blocks;
LONG xpru_blocksize;
LONG xpru_bytes;
LONG xpru_errors;
LONG xpru_timeouts;
LONG xpru_packettype;
LONG xpru_packetdelay;
LONG xpru_chardelay;
STRPTR xpru_blockcheck;
STRPTR xpru_expecttime;
STRPTR xpru_elapsedtime;
LONG xpru_datarate;
LONG xpru_reserved1;
LONG xpru_reserved2;
LONG xpru_reserved3;
LONG xpru_reserved4;
LONG xpru_reserved5;
};
/*
* The possible bit values for the xpru_updatemask are:
*/
#define XPRU_PROTOCOL 0x00000001L
#define XPRU_FILENAME 0x00000002L
#define XPRU_FILESIZE 0x00000004L
#define XPRU_MSG 0x00000008L
#define XPRU_ERRORMSG 0x00000010L
#define XPRU_BLOCKS 0x00000020L
#define XPRU_BLOCKSIZE 0x00000040L
#define XPRU_BYTES 0x00000080L
#define XPRU_ERRORS 0x00000100L
#define XPRU_TIMEOUTS 0x00000200L
#define XPRU_PACKETTYPE 0x00000400L
#define XPRU_PACKETDELAY 0x00000800L
#define XPRU_CHARDELAY 0x00001000L
#define XPRU_BLOCKCHECK 0x00002000L
#define XPRU_EXPECTTIME 0x00004000L
#define XPRU_ELAPSEDTIME 0x00008000L
#define XPRU_DATARATE 0x00010000L
/*
* The xpro_option structure
*/
struct xpr_option {
STRPTR xpro_description; /* description of the option */
LONG xpro_type; /* type of option */
STRPTR xpro_value; /* pointer to a buffer with the current value */
LONG xpro_length; /* buffer size */
};
/*
* Valid values for xpro_type are:
*/
#define XPRO_BOOLEAN 1L /* xpro_value is "yes", "no", "on" or "off" */
#define XPRO_LONG 2L /* xpro_value is string representing a number */
#define XPRO_STRING 3L /* xpro_value is a string */
#define XPRO_HEADER 4L /* xpro_value is ignored */
#define XPRO_COMMAND 5L /* xpro_value is ignored */
#define XPRO_COMMPAR 6L /* xpro_value contains command parameters */
/* Structure forward declaration for the GNU `C' compiler. */
#ifdef __GNUC__
struct Buffer;
#endif /* __GNUC__ */
/*
* The structure
*/
struct XPR_IO {
STRPTR xpr_filename;
LONG (* ASM xpr_fopen)(REG(a0) STRPTR,REG(a1) STRPTR);
LONG (* ASM xpr_fclose)(REG(a0) struct Buffer *);
LONG (* ASM xpr_fread)(REG(a0) APTR,REG(d0) LONG,REG(d1) LONG,REG(a1) struct Buffer *);
LONG (* ASM xpr_fwrite)(REG(a0) APTR,REG(d0) LONG,REG(d1) LONG,REG(a1) struct Buffer *);
LONG (* ASM xpr_sread)(REG(a0) APTR,REG(d0) ULONG,REG(d1) ULONG);
LONG (* ASM xpr_swrite)(REG(a0) APTR,REG(d0) LONG);
LONG (* xpr_sflush)(VOID);
LONG (* ASM xpr_update)(REG(a0) struct XPR_UPDATE *);
LONG (* xpr_chkabort)(VOID);
LONG (* xpr_chkmisc)(VOID);
LONG (* ASM xpr_gets)(REG(a0) STRPTR,REG(a1) STRPTR);
LONG (* ASM xpr_setserial)(REG(d0) LONG);
LONG (* ASM xpr_ffirst)(REG(a0) STRPTR,REG(a1) STRPTR);
LONG (* ASM xpr_fnext)(REG(d0) LONG,REG(a0) STRPTR,REG(a1) STRPTR);
LONG (* ASM xpr_finfo)(REG(a0) STRPTR,REG(d0) LONG);
LONG (* ASM xpr_fseek)(REG(a0) struct Buffer *,REG(d0) LONG,REG(d1) LONG);
LONG xpr_extension;
LONG *xpr_data;
ULONG (* ASM xpr_options)(REG(d0) LONG,REG(a0) struct xpr_option **);
LONG (* ASM xpr_unlink)(REG(a0) STRPTR);
LONG (* xpr_squery)(VOID);
LONG (* ASM xpr_getptr)(REG(d0) LONG);
};
/*
* The functions
*/
LONG XProtocolCleanup(struct XPR_IO *);
LONG XProtocolSetup(struct XPR_IO *);
LONG XProtocolSend(struct XPR_IO *);
LONG XProtocolReceive(struct XPR_IO *);
LONG XProtocolHostMon(struct XPR_IO *,APTR,LONG,LONG);
LONG XProtocolUserMon(struct XPR_IO *,APTR,LONG,LONG);
/* Pragmas for SAS/Lattice-C V5.0 */
#ifndef NO_PRAGMAS
#pragma libcall XProtocolBase XProtocolCleanup 1e 801
#pragma libcall XProtocolBase XProtocolSetup 24 801
#pragma libcall XProtocolBase XProtocolSend 2a 801
#pragma libcall XProtocolBase XProtocolReceive 30 801
#pragma libcall XProtocolBase XProtocolHostMon 36 109804
#pragma libcall XProtocolBase XProtocolUserMon 3c 109804
#endif /* NO_PRAGMAS */